﻿#ifndef _OI_PLSCANNERDLL_WINDOW_HPP_
#define _OI_PLSCANNERDLL_WINDOW_HPP_

#include "Appl/OiAppl.hpp"
#include <RibbonControls/RcRibbonMainWindow.hpp>
#include <RibbonControls/RcRibbonBar.hpp>
#include <RibbonControls/RcRibbonQuickAccessBar.hpp>
#include <RibbonControls/RcRibbonQuickActionBar.hpp>

namespace Oi { namespace PLScannerDll {

class PLScannerWindow : public Oi::RibbonMainWindow
{
    Q_OBJECT
public:
    PLScannerWindow(QWidget *parent = 0);
    ~PLScannerWindow();
 
public slots:
    void appendHistory(const QString& text);
    void appendWarning(const QString& text);
    void appendMessage(const QString& text);
    void appendAlerter(const QString& text);
    void appendSubject(const QString& text);
    void clearAlarm(const QString& text);

public slots:
    bool updateParams();
    void onParamsChanged();
public slots:
    void deleteCsv();
public slots:
    void startWork();
    void stopWork();

protected:
    void closeEvent(QCloseEvent* evt);

public slots:
    void setProgressValue(const int value);
    void showStatusMsg(const QString& text);

public slots:
    void onResultUpdate();

private slots:
    void onEnterTask();
    void onLeaveTask();

private slots:
    void onClose();
    void onReady();
    void onStart();
    void onOpen();
    void onProduct();
    void onImport();
    void onSave();

    void onOutputVisibilityChanged(bool);
   // void onMotorControlVisibilityChanged(bool);
    void onButtonGroupTriggered(int);

    void onUser();

   // void onFixedMeasure();
  //  void onManual();
  //  void onReference();
  //  void onPreview();
  //  void onRoi();
    void onZero();
    void onVerification();
    void onCalibration();
    void onCalibration2();
  //  void onCameraSetting();
    void onSettings();
    void onSuper(bool);
  //  void onPreset();
    void onLanguage();

    void onHelp();
    void onAbout();

private:
    OI_DISABLE_COPY(PLScannerWindow);
    OI_DECLARE_IMPL(PLScannerWindow);
};

} }

#endif
